#include "label.h"
#include <QDebug>
#include <QMouseEvent>

Label::Label(QWidget* parent): QLabel(parent)
{

}

//void Label::enterEvent(QEvent *event)
//{
//    (void) event;
//    qDebug() << "enterEvent";
//}

//void Label::leaveEvent(QEvent *event)
//{
//    (void) event;
//    qDebug() << "leaveEvent";
//}

//void Label::mousePressEvent(QMouseEvent *event)
//{
//    if (event->button() == Qt::LeftButton) {
//        qDebug() << "按下左键";
//    } else if (event->button() == Qt::RightButton) {
//        qDebug() << "按下右键";
//    }
//    // 当前 event 对象就包含了鼠标点击位置的坐标.
//     qDebug() << event->x() << ", " << event->y();
//    // globalX 和 globalY 是以屏幕左上角为原点, 获取的坐标.
//     qDebug() << event->globalX() << ", " << event->globalY();
//}



void Label::mousePressEvent(QMouseEvent *event)
{
    QString str = QString("鼠标按下: x = %1, y = %2").arg(event->x()).arg(event->y());
    qDebug() << str.toUtf8().data();
}

bool Label::event(QEvent *e)
{
    //如果是鼠标按下，在event事件分发时做拦截操作
    if (e->type() == QEvent::MouseButtonPress)
    {
        QMouseEvent *event = static_cast<QMouseEvent *>(e);
        QString str = QString("Event函数中鼠标按下: x = %1, y = %2").arg(event->x()).arg(event->y());
        qDebug() << str.toUtf8().data();

        return true; //返回true，代表用户自己处理，不向下分发
    }

    //其他事件交给父类处理
    return QLabel::event(e);
}

